home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-12-02 | 7.7 KB | 371 lines | [TEXT/PvRy] |
- // Persistence of Vision Ray tracer Scene description file
- // File: Bonk.pov
- // Vers: 2 or 3
- // Desc: Perpetual hammer bonking some balls...
- // A looped animation example for MooVer 1.3
- //
- // Settings:
- // Quality=9
- // Antialias=On
- // Antialias_Threshold=0.1
- // Antialias_Depth=3
- // Start_Frame=1
- // End_Frame=8
- // Final_Frame=9
- // Initial_Clock=0
- // Final_Clock=1
- //
- // Date: 11/15/95
- // Auth: Eduard [esp] Schwan
- //
-
- // ==== Standard POV-Ray Includes
- #include "colors.inc" // Standard Color definitions
- #include "textures.inc" // Standard Texture definitions
-
- #declare AnimClock = clock // POV-Ray's clock variable (range:0.0 to 1.0)
-
- // twist the entire structure at an angle away from viewer
- #declare YAngle = -50
-
- // ==== set viewer's position in the scene
- camera
- {
- location <0.0, 2, -6.0> // position of camera <X Y Z>
- direction 1.0*z // which way are we looking <X Y Z>
- //sky y // rarely used
- up y // which way is +up <X Y Z>
- right 4/3*x // which way is +right <X Y Z> and aspect ratio
- look_at <0.0, 0.5, 0.0> // point center of view at this point <X Y Z>
- }
-
- // ==== create a "spotlight" (directed) light source
- light_source
- {
- 0*x // light's position (translated below)
- color red 0.8 green 1.0 blue 0.8 // light's color
- // looks_like { sphere { 0*x, 1 texture {pigment{color Yellow}finish{ambient 1 diffuse 0}} } }
- spotlight // this kind of light source
- translate <0, 5, -8> // <x y z> position of light
- point_at <0, 0, 0> // direction of spotlight
- radius 10 // hotspot (inner, in degrees)
- falloff 15 // intensity falloff radius (outer, in degrees)
- // enable this line to get soft shadows (and slow down rendering!)
- area_light <2, 0, 0> <0, 2, 0> 4, 4 adaptive 0 jitter
- }
-
-
- light_source
- {
- 0*x // light's position (translated below)
- color red 1.0 green 0.8 blue 0.8 // light's color
- // looks_like { sphere { 0*x, 1 texture {pigment{color Yellow}finish{ambient 1 diffuse 0}} } }
- spotlight // this kind of light source
- translate <-3, 5, -8> // <x y z> position of light
- point_at <-1, 0, 0> // direction of spotlight
- radius 10 // hotspot (inner, in degrees)
- falloff 15 // intensity falloff radius (outer, in degrees)
- // enable this line to get soft shadows (and slow down rendering!)
- area_light <2, 0, 0> <0, 2, 0> 4, 4 adaptive 0 jitter
- }
-
- // ==== Sky sphere
- #declare SkyTex =
- texture
- {
- pigment
- {
- bozo
- turbulence 0.3 omega 0.7
- rotate 70*y // across the sky
- color_map {[0.7 color rgb <0.6,0.7,1.0>] [0.8 color rgb 0.8] [0.9 color rgb 1.0]}
- scale <90, 5, 5>
- }
- finish {ambient 1 diffuse 0}
- }
-
- sphere
- {
- <0, 0, 0> // center of sphere <X Y Z>
- 100.0 // radius of sphere
- texture { SkyTex }
- }
-
- // ==== floor
- plane
- {
- y, // <X Y Z> unit surface normal, vector points "away from surface"
- -1.0 // distance from the origin in the direction of the surface normal
- texture
- {
- pigment
- {
- marble turbulence 0.7 rotate -20*y scale 2
- color_map {[0.8 color White] [0.9 color rgb <0.8,0.9,1>] [1.0 color rgb <0.8,0.6,0.3>]}
- }
- finish {ambient 0.25 reflection 0.2}
- }
- }
-
- // ==== Supports (Barrel shape)
-
- #declare SupportZOffset = 5
-
- #declare SupportShape =
- intersection
- {
- sphere
- {
- 0*x, 1 scale <1,2,1> // elongate it upwards
- }
- cylinder // cut it off at top and bottom
- {
- -1*y, +1*y, 1.1
- }
- }
-
- #declare SupportTex =
- texture
- {
- pigment { color rgb <0.5,1.0,0.5> } finish {reflection 0.5 metallic specular 0.5}
- }
-
- union
- {
- // supports
- object
- {
- SupportShape
- scale 2
- texture {SupportTex}
- translate -SupportZOffset*z
- }
- object
- {
- SupportShape
- scale 2
- texture {SupportTex}
- translate +SupportZOffset*z
- }
- // move it up above floor
- translate 1*y
- rotate YAngle*y // angle it
- }
-
- // ==== Bonker wheel
-
- #declare BonkHammerShape =
- intersection
- {
- cylinder
- {
- -1*x, +1*x, 1
- }
- sphere
- {
- 0*x, 1.25
- }
- scale <0.4, 0.3, 0.3> // elongaate it
- }
-
- union
- {
- // inner wheel
- union
- {
- torus { 0.60, 0.14 rotate 90*x }
- torus { 0.40, 0.16 rotate 90*x }
- torus { 0.15, 0.25 rotate 90*x }
- sphere { 0*x, 0.2 scale <1,1,4> }
- texture
- {
- pigment
- {
- radial rotate 90*x frequency 6
- color_map
- {
- [0.0 color rgb 0]
- [1.0 color rgb 1]
- }
- }
- finish {specular 0.5 reflection 0.1 metallic}
- }
- }
- // shaft
- box
- {
- -1*(x+y+z), +1*(x+y+z)
- scale <0.1, 1.7, 0.1> // skinny and tall
- texture { pigment {wood turbulence 0.2 rotate 95*x scale 0.2} finish {specular 0.4 roughness 0.05}}
- }
- // bottom hammer
- object
- {
- BonkHammerShape
- translate -1.7*y
- texture {Bright_Bronze}
- }
- // top hammer
- object
- {
- BonkHammerShape
- translate +1.7*y
- texture {Bright_Bronze}
- }
- // rotate on its origin
- rotate AnimClock*180*z
- // move it up above floor
- translate 1*y
- rotate YAngle*y // angle it
- }
-
- // == balls
-
- // initially move ball away from hammer by a small amount
- #declare BallXPosTweak = 0.4
-
- // gee, what distance would a 1 unit diameter ball roll?
- #declare BallXSpeed = 3.1415926 // ...
-
- #declare BallTex =
- texture
- {
- pigment
- {
- gradient x scale 1.3
- color_map
- {
- [0.0 color rgb <0.5, 0.1, 0.1>] [0.1 color rgb <0.9, 0.7, 0.6>] [0.9 color rgb <0.9, 0.7, 0.6>] [1.0 color rgb <0.5, 0.1, 0.1>]
- }
- }
- finish {reflection 0.5 specular 0.2 metallic roughness 0.001}
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(-5+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(-4+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(-3+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(-2+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(-1+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(0+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(+1+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(+2+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(+3+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
-
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(+4+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
-
-
- sphere
- {
- 0*x, 1.0
- texture {BallTex}
- scale 0.5
- rotate -360*z*AnimClock
- translate BallXSpeed*x*(+5+AnimClock+BallXPosTweak)
- translate -0.5*y // drop down to the floor
- rotate YAngle*y // angle it
- }
-
- // <eof>
-
-